/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.zonacardio.servlest;


import com.zonacardio.entidad.Deportistas;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.zonacardio.negocio.RegistroAsistenciaN;
import com.zonacardio.entidad.RegistroAsistencia;
import com.zonacardio.entidad.Plan;
import com.zonacardio.entidad.VentaPlanes;
import com.zonacardio.negocio.DeportistasN;
import com.zonacardio.negocio.PlanN;
import com.zonacardio.negocio.VentaPlanN;
import com.zonacardio.utilidades.Tiempo;


/**
 *
 * @author USUARIO
 */
public class RegistroAsistenciasServlet extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        //   String usuario = request.getParameter("txtusuarioCreador");
        String codigo = request.getParameter("txtcodigo");
        String numeroDocumentoDeportistas = request.getParameter("txtnumeroDocumentoDeportistas");
        String codigoPlanes = request.getParameter("cbocodigoPlanes");
        String fechaIngreso = request.getParameter("txtfechaIngreso");
        String horaIngreso = request.getParameter("txthoraIngreso");
        String horaTerminacion = request.getParameter("txthoraTerminacion");
        String fechaUltimoIngreso = request.getParameter("txtfechaUltimoIngreso");
        String usuarioCreador = request.getParameter("txtusuarioCreador");
        System.out.println(usuarioCreador + "/////////////////////////////");
         String codigoventa = request.getParameter("txtcodigoventa"); 

        //String targetPage = "./index.jsp";
        String targetPage = "./Principal.jsp";
        request.setAttribute("target", "./FPrincipal.jsp");
        request.setAttribute("targetModulo", "./FRegistrosAsistencias.jsp");
     
        request.setAttribute("ra", null);
        request.setAttribute("deportista", null);
         request.setAttribute("plan", null);
        PlanN pn = new PlanN();
        Plan entplan = new Plan();
        RegistroAsistencia entReg = new RegistroAsistencia();
        RegistroAsistenciaN RegistroN = new RegistroAsistenciaN();
        DeportistasN negocioD = new DeportistasN();
        Deportistas entDep = new Deportistas();

        VentaPlanN negogocioVP = new VentaPlanN();
        VentaPlanes entVentaP = new VentaPlanes();
        request.setAttribute("venta", null);

        List<Plan> ListaPlan = pn.ListadoDePlanes();
        request.setAttribute("ListaPlanes", ListaPlan);
           request.setAttribute("ListaRegistroAsistencia", null);  

        String men = "";
         request.setAttribute("mensaje", null);  

        if ("Listar".equals(request.getParameter("action"))) {
          try {
            } catch (Exception ex) {
                Logger.getLogger(UsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }

        if ("traer_dep".equals(request.getParameter("action"))) {

            try {
                List<RegistroAsistencia> ListaAsistencia = RegistroN.ListadoRegistroAsistencia(numeroDocumentoDeportistas);
                request.setAttribute("ListaRegistroAsistencia", ListaAsistencia);

                entVentaP = negogocioVP.getVentaPlanDeportista(numeroDocumentoDeportistas);
                request.setAttribute("venta", entVentaP);

                entplan = pn.getPlan(entVentaP.getCodigoplanes());
                request.setAttribute("plan", entplan);
                
                
                entDep = negocioD.buscarDeportistas(numeroDocumentoDeportistas);
                request.setAttribute("deportista", entDep);

                
                List<Plan> ListadelPlan = pn.ListaTraerPlan(entVentaP.getCodigoplanes());
                request.setAttribute("ListaPlanes", ListadelPlan);
                
                
                
                entReg= RegistroN.getRegistroAsistenciaPordeportista(numeroDocumentoDeportistas);
                String ultimoIngreso =entReg.getFechaIngreso();
                entReg.setFechaIngreso(Tiempo.getFecha());
                entReg.setHoraIngreso(Tiempo.getHora());
                entReg.setUsuarioCreador(usuarioCreador);
                entReg.setCodigoPlanes(entVentaP.getCodigoplanes());
                entReg.setHoraTerminacion(Tiempo.getHoraTerminacionAprox());
                entReg.setNumeroDocumentoDeportistas("");
                entReg.setCodigo(RegistroN.getConsecutivoAsistencia(entVentaP.getCodigoventa()));
                
               
                entReg.setFechaUltimoIngreso(ultimoIngreso);
                entReg.setCodigoventa(entVentaP.getCodigoventa());
                entReg.setNrosesiones(RegistroN.getDiasAsistencia(entVentaP.getCodigoventa()) );
                request.setAttribute("ra", entReg);
                request.setAttribute("mensaje",null);


            } catch (Exception ex) {
                Logger.getLogger(UsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }



        if ("Buscar".equals(request.getParameter("action"))) {
            String campo = "Codigo";
            /*Tengo que buscar el plan que compro el deportista y que esta vigente
             * y cargarlo en el combo de planes haciendo una consulta
             * compuesta con venta planes y Plan para recuperar elnombre del plan
             * garantiizando que el plan este vigente(numero de clases no se exceda o que la
             fecha de vencimiento tampoco)
             *
             */
            try {
                entReg = RegistroN.getRegistroAsistencia(codigo);
                // entReg.setCodigo(RegistroN.getRegistroAsistencia(codigo));
                request.setAttribute("ra", entReg);

                request.setAttribute("ListaRegistroAsistencia", null);

                List<RegistroAsistencia> ListaAsistencia = RegistroN.ListadoRegistroAsistencia(entReg.getNumeroDocumentoDeportistas());
                request.setAttribute("ListaRegistroAsistencia", ListaAsistencia);

            } catch (Exception ex) {
                Logger.getLogger(RegistroAsistenciasServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }

     /*Creo que sobra este metodo*/
        if ("Nuevo".equals(request.getParameter("action"))) {
//*averiguar comosumar horas en my sql


            try {
                entReg.setFechaIngreso(Tiempo.getFecha());
                entReg.setHoraIngreso(Tiempo.getHora());
                entReg.setUsuarioCreador(usuarioCreador);
                entReg.setCodigoPlanes("");
                entReg.setHoraTerminacion("");
                entReg.setNumeroDocumentoDeportistas("");
               // entReg.setCodigo(RegistroN.getConsecutivoAsistencia());
                entReg.setFechaUltimoIngreso("");
                // entReg.setCodigo(RegistroN.getRegistroAsistencia(codigo));
                request.setAttribute("ra", entReg);

                request.setAttribute("ListaRegistroAsistencia", null);

                //  List<RegistroAsistencia> ListaAsistencia=RegistroN.ListadoRegistroAsistencia(entReg.getNumeroDocumentoDeportistas());
                request.setAttribute("ListaRegistroAsistencia", null);

                List<RegistroAsistencia> ListaAsistencia = RegistroN.ListadoRegistroAsistencia();
                request.setAttribute("ListaRegistroAsistencia", ListaAsistencia);

            } catch (Exception ex) {
                Logger.getLogger(RegistroAsistenciasServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }

        if ("Guardar".equals(request.getParameter("action"))) {


            try {

                men = RegistroN.insertRegistroAsistencia(codigo, numeroDocumentoDeportistas, codigoPlanes, fechaIngreso, 
                        horaIngreso, horaTerminacion, fechaUltimoIngreso, usuarioCreador, codigoventa);


                entReg.setCodigo(RegistroN.getConsecutivoAsistencia(codigoventa));
                entReg.setNumeroDocumentoDeportistas("");
                entReg.setCodigoPlanes("");
                entReg.setFechaIngreso("");
                entReg.setHoraIngreso("");
                entReg.setHoraTerminacion("");
                entReg.setFechaUltimoIngreso("");
                entReg.setUsuarioCreador("");
                   request.setAttribute("ra", entReg);
                 List<RegistroAsistencia> ListaAsistencia = RegistroN.ListadoRegistroAsistencia(numeroDocumentoDeportistas);
                request.setAttribute("ListaRegistroAsistencia", ListaAsistencia);

                request.setAttribute("mensaje", men);

            } catch (Exception ex) {
                Logger.getLogger(RegistroAsistenciasServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());

            }


        }



        request.getRequestDispatcher(targetPage).forward(request, response);
    }// fin proces request

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
